/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ceair.flight.refund.service.uatp;

import com.ceair.flight.refund.dto.appmoblie.RefundApplyDto;
import com.ceair.flight.refund.dto.external.BasePageQueryReq;
import com.ceair.flight.refund.dto.uatp.PaginationResultRes;
import com.ceair.flight.refund.dto.uatp.RefundApplyDetail;
import com.ceair.flight.refund.dto.uatp.RefundApplyDtoList;
import com.ceair.muservice.common.dto.page.PaginationResult;

import java.util.List;
import java.util.Set;

/**
 * 退票申请单查询
 *
 * @author youguilin
 */
public interface IApplyQuery {

    /**
     * 查询退票审核中的详情,包含票的Detr信息
     * {@link IApplyQuery#getRfdApplyDetials(long)}
     * @param applyId 申请记录ID
     * @return
     */
	@Deprecated
    RefundApplyDetail getRefundApplyDetails(long applyId);
    
    /**
     * 查询退票审核中的详情,包含票的Detr信息
     *
     * @param applyId 申请记录ID
     * @return
     */
    RefundApplyDetail getRfdApplyDetials(long applyId);

    /**
     * 查询退票审核中的详情, 不包含票的Detr信息
     * {@link IApplyQuery#getRfdApplyDetailsWithoutDetr(long)}
     * @param applyId 申请记录ID
     * @return
     */
    @Deprecated
    RefundApplyDetail getApplyDetailsWithoutDetr(long applyId);
    
    
    /**
     * 查询退票审核中的详情, 不包含票的Detr信息
     * 
     * @param applyId 申请记录ID
     * @return
     */
    RefundApplyDetail getRfdApplyDetailsWithoutDetr(long applyId);
    
    

    /**
     * 查询一审列表
     * {@link IApplyQuery#getFirAuditList(BasePageQueryReq)}
     * @param pageQueryReq
     * @return
     */
    @Deprecated
    PaginationResult<RefundApplyDto> getFirstAuditList(BasePageQueryReq pageQueryReq);
    
    
    /**
     * 查询一审列表
     *
     * @param pageQueryReq
     * @return
     */
    PaginationResultRes getFirAuditList(BasePageQueryReq pageQueryReq);
    
    
    /**
     * 查询二审列表
     * {@link IApplyQuery#getSecAuditList(BasePageQueryReq)}
     * @param pageQueryReq
     * @return
     */
    @Deprecated
    PaginationResult<RefundApplyDto> getSecondAuditList(BasePageQueryReq pageQueryReq);
    
    
    /**
     * 查询二审列表
     *
     * @param pageQueryReq
     * @return
     */
    PaginationResultRes getSecAuditList(BasePageQueryReq pageQueryReq);
    
    

    /**
     * 查询申请单列表
     * {@link IApplyQuery#getApplyList(BasePageQueryReq)}
     * @param pageQueryReq
     * @return
     */
    @Deprecated
    PaginationResult<RefundApplyDto> getList(BasePageQueryReq pageQueryReq);
    
    /**
     * 查询申请单列表
     *
     * @param pageQueryReq
     * @return
     */
    PaginationResultRes getApplyList(BasePageQueryReq pageQueryReq);

    /**
     * 通过票号获取退票信息, 如果退票实例中的id为0, 则说明这张票(ticket No会存在退票实例中)对应的refund apply 记录没有找到
     * {@link IApplyQuery#getRfdApplyByTkt(Set<String>)}
     * @param ticketNos 客票票号列表
     * @return
     */
    @Deprecated
    List<RefundApplyDto> getRefundApplyByTkt(Set<String> ticketNos);
    /**
     * 通过票号获取退票信息, 如果退票实例中的id为0, 则说明这张票(ticket No会存在退票实例中)对应的refund apply 记录没有找到
     *
     * @param ticketNos 客票票号列表
     * @return
     */
    RefundApplyDtoList getRfdApplyByTkt(Set<String> ticketNos);
    
}
